package com.whx.managea.service.impl;

import com.whx.managea.dao.UserDAO;
import com.whx.managea.entity.User;
import com.whx.managea.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDAO userDAO;


    //注册功能的业务逻辑方法
    @Override
    public void regist(User user) {
        //在进行注册功能的时候，为了防止添加user时出现用户名重复的问题
        //我们需要在注册之前先判断当前用户想要注册的用户名是否在数据库中存在
        User name = userDAO.findByName(user.getName());
        if (name!=null){
            //说明当前的用户名存在，不能继续注册
            throw new RuntimeException("用户名重复！注册失败！");
        }

        //1.指定添加用户的创建时间和激活状态
        user.setStatus("激活");
        user.setRegtime(new Date());
       //2.调用dao层进行持久化操作
        userDAO.regist(user);
    }

    @Override
    public User login(User user) {
       //1.在用户实现登录操作的时候，可以直接调用findByName的方法先查询当前登录的用户名是否存在
        User byName = userDAO.findByName(user.getName());
        if (byName!=null){
            //说明当前用户的登录名存在
            //继续判断当前查询出来的用户密码和用户登录时输入的密码是否一致
            if(byName.getPassword().equals(user.getPassword())){
                //说明密码也一致，代表登录成功！
                return byName;
            }
            //如果查询出来的密码不一致。说明账户名对了，密码不对
            throw new RuntimeException("用户密码错误！");
        }

        throw  new  RuntimeException("用户名不存在！");

    }


}
